
# 使用 Node.js 作为基础镜像
FROM node:16-bullseye-slim
 
# 设置工作目录
WORKDIR /app
 
# 安装基本工具
RUN apt-get update && apt-get install -y \
    git \
    curl \
    python3 \
    python3-pip \
    build-essential \
    && rm -rf /var/lib/apt/lists/*
 
# 安装 Solidity 编译器
RUN npm install -g solc@0.8.17
 
# 安装 Hardhat、Truffle 和其他常用工具
RUN npm install -g hardhat truffle ganache @openzeppelin/contracts-ethereum-package eth-gas-reporter solidity-coverage
 
# 安装额外的分析工具
RUN pip3 install slither-analyzer solc-select mythril
 
# 预先安装常用依赖，加快后续构建
COPY package.json* package-lock.json* /tmp/
RUN cd /tmp && npm install && mkdir -p /app/node_modules && cp -R /tmp/node_modules/. /app/node_modules/
 
# 设置默认命令
CMD ["bash"]